package com.fowo.api.model.funds.pay.order;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 请款单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class FundsPayOrderImportPo {

  /** 请款单号 */
  @ExcelProperty("请款单号")
  private String orderId;

  /** 关联单号 */
  @ExcelProperty("关联单号")
  @Size(max = 50, message = "关联单号长度不能超过50")
  private String associatedOrder;

  /** 付款方 */
  @ExcelProperty("付款方")
  @Size(max = 50, message = "付款方长度不能超过50")
  private String payer;

  /** 状态 */
  @ExcelProperty("状态")
  private String status;

  /** 应付费用类型 */
  @ExcelProperty("应付费用类型")
  private String costType;

  /** 应付对象类型 */
  @ExcelProperty("应付对象类型")
  private String payerType;

  /** 应付对象名称 */
  @ExcelProperty("应付对象名称")
  @Size(max = 50, message = "应付对象名称长度不能超过50")
  private String payerTypeName;

  /** 结算描述 */
  @ExcelProperty("结算描述")
  @Size(max = 50, message = "结算描述长度不能超过50")
  private String describe;

  /** 预付比例 */
  @ExcelProperty("预付比例")
  @DecimalString(message = "预付比例小数格式不正确", label = "预付比例")
  private String budgetRatio;

  /** 结算方式 */
  @ExcelProperty("结算方式")
  private String settlementType;

  /** 交易方式 */
  @ExcelProperty("交易方式")
  @Size(max = 50, message = "交易方式长度不能超过50")
  private String exchangeType;

  /** 支付方式 */
  @ExcelProperty("支付方式")
  private String payType;

  /** 预计付款日期 */
  @ExcelProperty("预计付款日期")
  @DateString(message = "预计付款日期不是有效的日期格式")
  private String predictFkTime;

  /** 户名 */
  @ExcelProperty("户名")
  @Size(max = 50, message = "户名长度不能超过50")
  private String userName;

  /** 开户行 */
  @ExcelProperty("开户行")
  @Size(max = 50, message = "开户行长度不能超过50")
  private String bankOfDeposit;

  /** 账号 */
  @ExcelProperty("账号")
  @Size(max = 50, message = "账号长度不能超过50")
  private String bankAccount;

  /** 原币种 */
  @ExcelProperty("原币种")
  private String currency;

  /** 付款币种 */
  @ExcelProperty("付款币种")
  private String payCurrency;

  /** 指定汇率 */
  @ExcelProperty("指定汇率")
  private String exchangeRateType;

  /** 汇率 */
  @ExcelProperty("汇率")
  @DecimalString(message = "汇率小数格式不正确", label = "汇率")
  private String exchangeRate;

  /** 请款维度 */
  @ExcelProperty("请款维度")
  private String withdrawDimension;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 付款金额 */
  @ExcelProperty("付款金额")
  @DecimalString(message = "付款金额小数格式不正确", label = "付款金额")
  private String paymentAmount;

  /** 已付 */
  @ExcelProperty("已付")
  @DecimalString(message = "已付小数格式不正确", label = "已付")
  private String paidAmount;

  /** 未付 */
  @ExcelProperty("未付")
  @DecimalString(message = "未付小数格式不正确", label = "未付")
  private String unpaidAmount;

  /** 申请人 */
  @ExcelProperty("申请人")
  @Size(max = 50, message = "申请人长度不能超过50")
  private String applicantName;

  /** 申请备注 */
  @ExcelProperty("申请备注")
  @Size(max = 50, message = "申请备注长度不能超过50")
  private String applyRemark;

  /** 申请时间 */
  @ExcelProperty("申请时间")
  @DateTimeString(message = "申请时间不是有效的时间日期格式")
  private String applyTime;

  /** 实际付款日期 */
  @ExcelProperty("实际付款日期")
  @DateTimeString(message = "实际付款日期不是有效的时间日期格式")
  private String paymentDate;

  /** 付款人 */
  @ExcelProperty("付款人")
  @Size(max = 50, message = "付款人长度不能超过50")
  private String paymentUserName;

  /** 付款备注 */
  @ExcelProperty("付款备注")
  @Size(max = 50, message = "付款备注长度不能超过50")
  private String paymentRemark;

  /** 审批结果 */
  @ExcelProperty("审批结果")
  private String approveStatus;

  /** 审批意见 */
  @ExcelProperty("审批意见")
  @Size(max = 500, message = "审批意见长度不能超过500")
  private String approvalOpinion;

  /** 折合新币种 */
  @ExcelProperty("折合新币种")
  @DecimalString(message = "折合新币种小数格式不正确", label = "折合新币种")
  private String convertInto;

  /** 本次付款 */
  @ExcelProperty("本次付款")
  @DecimalString(message = "本次付款小数格式不正确", label = "本次付款")
  private String thisPayment;
}
